package com.simpou.commons.utils.lang;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;

/**
 * Classe utilitária para operações com classloaders.
 *
 * @author Jonas Pereira
 * @version 2013-08-06
 * @since 2013-08-06
 */
public class ClassLoaders {

    /**
     * @param urls Caminhos de arquivos jar e de diretórios de classpath a serem
     * considerados pelo classloader.
     * @return ClassLoader.
     * @throws MalformedURLException Caso alguma URL não estiver de acordo.
     */
    public static ClassLoader newClassLoaderByUrls(String... urls) throws MalformedURLException {
        final URL urlArray[] = new URL[urls.length];
        for (int i = 0; i < urlArray.length; i++) {
            urlArray[i] = new File(urls[i]).toURI().toURL();
        }
        return new URLClassLoader(urlArray);
    }
}
